---
title: Async 和 await
---

import asyncAwait from '../../../../examples/files/javascript/fetch.js'

`async` 和 `await` 这两个关键字为 `Promises` 量身定制的。

一个标记为 `async` 的函数*一定*会返回一个 `Promise` 对象，如果返回值不是 `Promise` 类型，则会自动用 `Promise.resolve` 包装。

在 `async` 函数里，我们可以使用 `await` 来等待和访问一个 `Promise` 对象的解析值或拒绝原因。

> 这种语法的主要优点是避免深度嵌套的回调链。 但即使语法看起来更简练了，我们还是要注意异步编程的复杂性。

<Example width={0} title={'Async and Await'} code={asyncAwait} />
